package com.zzyy.study.mq.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zzyy.study.mq.po.MsgPO;
import java.time.LocalDateTime;
import java.util.List;

public interface IMsgService extends IService<MsgPO>
{
    /**
     * 批量插入消息
     *
     * @param msgBodyJsonList
     * @return
     */
    List<MsgPO> batchInsert(List<String> msgBodyJsonList);

    /**
     * 将消息状态置为成功,t_msg消息表的status修改为1
     *
     * @param msgPO
     */
    void updateStatusSuccess(MsgPO msgPO);

    /**
     * 将消息状态置为失败
     *
     * @param msgPO
     * @param failMsg       失败原因
     * @param sendRetry     是否还需要重试
     * @param nextRetryTime 下次重试发送时间
     */
    void updateStatusFail(MsgPO msgPO, String failMsg, boolean sendRetry, LocalDateTime nextRetryTime);
}
